package com.springCloud.ribbon;

/**
 * Ribbon使用
 * @LoadBalanced注解
 *
 */
public class RibbonDemo {
    /**
     * Ribbon使用
     *
     * 给RestTemplate 加上@LoadBalance注解
     * LoadBalnacerConfiguration的自动装配类
     *
     */
    public void demo1(){

    }

    /**
     * LoadBalancerAutoConfiguration  加入一些bean
     * 里面有方法
     * 一、向容器中注入LoadBalanceInterceptor拦截器
     * 二、为RestTemplate添加LoadBalancerIntercepter拦截器
     */
    public void demo3(){

    }

    /**
     * LoadBalancerIntercepter中的代码逻辑
     *
     * 获取负载均衡器
     * ZoneAwareLoadBalancer
     *
     */
    public void demo4(){

    }

    /**
     * 构造ZoneAwareLoadBalancer
     * serverList  服务列表
     * serverFilter 服务过滤器
     * Iping  判断服务是否存活
     * IRule 负载均衡器：里面有很多负载均衡算法
     * ServerListUpdate：定时更新服务列表
     */
    public void demo5(){

    }

    /**
     * execute 方法
     * 找到对应的服务，进行轮询
     */
    public void demo6(){

    }


    /**
     * RestTemplate如何拦截请求
     * 判断是否有拦截器，执行拦截器的方法
     * 组装好请求后，回到RestTemplate执行HttpURLconnect发送请求
     */
    public void demo7(){

    }

    /**
     * Ribbon是如何获取Eureka服务注册表的
     * 通过EurekaClient获取
     */
    public void demo8(){

    }


}
